// 遍历数组 
// 1.for循环
const arr = [1, 2, 3, 4, 5];
for (let i = 0; i < arr.length; i++) {
    if (arr[i] === 2) {
        break //退出当前循环
    }
    // console.log(arr[i])
}

//forEach
arr.forEach(function (item) {
    // 不支持break和continue
    // console.log(item)
})

// every
arr.every(function (item) {
    console.log(item) //不加return true默认返回1，因为every取决于函数返回值，默认返回false
    return true //添加后正常输出全部数组
})

arr.every(function (item) {
    if (item === 2) {
        return false
    }
    console.log(item) //只打出1
})

arr.every(function (item) {
    if (item === 2) {

    } else {
        console.log(item) //跳过2输出1,3,4,5
    }
    return true
})

for (let index in arr) {
    console.log(index, arr[index]) //之所以forin能遍历数组，是以为内数组也是对象的一种
}

//forin遍历数组的瑕疵(会遍历自定义属性):  
arr.a = 8
for (let index in arr) {
    if (index == 2) {
        break //index是字符串因此不能===
    }
    console.log(index, arr[index]) //最后会多打印出a,8 ,a不是索引
}


// for of


const Price = {
    A: [1.5, 2.3, 4.5],
    b: [3, 4, 5],
    c: [0.5, 0.8, .12]
}
for (let key in Price) {
    console.log(key, Price[key])
}


// 数组的转换功能：
// 数组的转换功能：


// es7新增API,判断数组是否有某个值
const arr_es7 = [1, 2, 3, 4, 5, 6];
console.log('es7:' + arr_es7.includes(4))

// 数字的指数形式：2的五次方
console.log(Math.pow(2, 5)) //32

// es7的形式：
console.log(2 ** 5) //32